'use strict';

const Controller = require('egg').Controller;

class HomeController extends Controller {
    async add() {
        let { ctx, app } = this;

        const { Ftype, Fmoney } = ctx.request.body;
		
		// 参数验证
		const paramVerification = await ctx.parameter({ Ftype, Fmoney  })
		if(paramVerification !== ''){
		    return ctx.apiFail(paramVerification);
		}
		
		const resSelect = await app.mysql.get('Fuzhuang', { Ftype });
		if(resSelect !== null){
		    return ctx.apiFail('添加失败 该类型名称已存在');
		}
	
        // 数据库插入
        const result = await app.mysql.insert('Fuzhuang', { Ftype, Fmoney });

        if(result.affectedRows !== 1){
            return ctx.apiFail('添加失败');
        }

        return ctx.apiSuccess('添加成功');
    }
	
	// 信息查询
	async dataList(){
		const { ctx, app } = this;
		
		const { pages, pageNumber } = ctx.query;
		
		// 参数验证
		const paramVerification = await ctx.parameter({ pages, pageNumber })
		if(paramVerification !== ''){
		    return ctx.apiFail(paramVerification);
		}
		
		// 查询数据总记录数
		const resultsCount = await this.app.mysql.query('SELECT count(*) FROM Fuzhuang');
		
		const sum = resultsCount[0]['count(*)']; // 总页数
		
		// 分页查询数据
		const res = await this.app.mysql.select('Fuzhuang', { 
		  limit: pages*1, // 每页数据量
		  offset: pageNumber*1, // 页码
		});
		
		const data = {
			list:res, // 数据
			sum, // 总记录数
			SumPages: Math.ceil(sum/pages*1), // 总页数
			pageNumber: pageNumber*1, // 当前页码 
		}
		
		return ctx.apiSuccess(data);
	}
	
	// 修改
	async update(){
		const { ctx, app } = this;
		let { Fuzhuangid, Ftype, Fmoney } = ctx.request.body;
		
		// 参数验证
		const paramVerification = await ctx.parameter({ Fuzhuangid, Ftype, Fmoney })
		if(paramVerification !== ''){
		    return ctx.apiFail(paramVerification);
		}
	
		// 修改条件
		const options = {
		  where: {
		    Fuzhuangid
		  }
		};
		// 修改
		const result = await this.app.mysql.update('Fuzhuang', { Ftype, Fmoney }, options);
		
		// 判断是否成功
		if(result.affectedRows !== 1){
			return ctx.apiFail('更改失败');
		}
		return ctx.apiSuccess('更改成功');
	}
	
	// 删除
	async del(){
		const { ctx, app } = this;
		let { Fuzhuangid } = ctx.request.body;
		// 参数验证
		const paramVerification = await ctx.parameter({ Fuzhuangid })
		if(paramVerification !== ''){
		    return ctx.apiFail(paramVerification);
		}
		
		// 删除
		const result = await this.app.mysql.delete('Fuzhuang', { Fuzhuangid });
		
		// 判断是否成功
		if(result.affectedRows !== 1){
			return ctx.apiFail('删除失败');
		}
		
		return ctx.apiSuccess('删除成功');
	}
}

module.exports = HomeController;
